package com.ruoyi.system.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 订单购物详情业务对象 p_store_order_info
 *
 * @author ruoyi
 * @date 2022-08-01
 */

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("订单购物详情业务对象")
public class PStoreOrderInfoBo extends BaseEntity {

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键", required = true)
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 订单id
     */
    @ApiModelProperty(value = "订单id", required = true)
    @NotNull(message = "订单id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long orderId;

    /**
     * 商品ID
     */
    @ApiModelProperty(value = "商品ID", required = true)
    @NotNull(message = "商品ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer productId;

    /**
     * 购买东西的详细信息
     */
    @ApiModelProperty(value = "购买东西的详细信息", required = true)
    @NotBlank(message = "购买东西的详细信息不能为空", groups = { AddGroup.class, EditGroup.class })
    private String info;

    /**
     * 唯一id
     */
    @ApiModelProperty(value = "唯一id", required = true)
    @NotBlank(message = "唯一id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String unique;

    /**
     * 订单号
     */
    @ApiModelProperty(value = "订单号", required = true)
    @NotBlank(message = "订单号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String orderNo;

    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称", required = true)
    @NotBlank(message = "商品名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String productName;

    /**
     * 规格属性值id
     */
    @ApiModelProperty(value = "规格属性值id", required = true)
    @NotNull(message = "规格属性值id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long attrValueId;

    /**
     * 商品图片
     */
    @ApiModelProperty(value = "商品图片", required = true)
    @NotBlank(message = "商品图片不能为空", groups = { AddGroup.class, EditGroup.class })
    private String image;

    /**
     * 商品sku
     */
    @ApiModelProperty(value = "商品sku", required = true)
    @NotBlank(message = "商品sku不能为空", groups = { AddGroup.class, EditGroup.class })
    private String sku;

    /**
     * 商品价格
     */
    @ApiModelProperty(value = "商品价格", required = true)
    @NotNull(message = "商品价格不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal price;

    /**
     * 购买数量
     */
    @ApiModelProperty(value = "购买数量", required = true)
    @NotNull(message = "购买数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long payNum;

    /**
     * 重量
     */
    @ApiModelProperty(value = "重量", required = true)
    @NotNull(message = "重量不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal weight;

    /**
     * 体积
     */
    @ApiModelProperty(value = "体积", required = true)
    @NotNull(message = "体积不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal volume;

    /**
     * 赠送积分
     */
    @ApiModelProperty(value = "赠送积分", required = true)
    @NotNull(message = "赠送积分不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long giveIntegral;

    /**
     * 是否评价，0-未评价，1-已评价
     */
    @ApiModelProperty(value = "是否评价，0-未评价，1-已评价", required = true)
    @NotNull(message = "是否评价，0-未评价，1-已评价不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isReply;

    /**
     * 是否单独分佣,0-否，1-是
     */
    @ApiModelProperty(value = "是否单独分佣,0-否，1-是", required = true)
    @NotNull(message = "是否单独分佣,0-否，1-是不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isSub;

    /**
     * 会员价
     */
    @ApiModelProperty(value = "会员价", required = true)
    @NotNull(message = "会员价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal vipPrice;

    /**
     * 商品类型:0-普通，1-秒杀，2-砍价，3-拼团，4-视频号
     */
    @ApiModelProperty(value = "商品类型:0-普通，1-秒杀，2-砍价，3-拼团，4-视频号", required = true)
    @NotNull(message = "商品类型:0-普通，1-秒杀，2-砍价，3-拼团，4-视频号不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer productType;


}
